#include <iostream>

using namespace std;

//先比较大小，然后较大的数减去较小的数
//用字符串比较之前，先比较一下长度

//思路
//1.用字符串读取数字，逆序放到数组中
//2.模拟列竖式减法
//1)先是对应位相减，然后处理借位
//2)如果减的结果小于0，往前借一位，然后这一位加上10

const int N = 1e5 + 10;

string s1, s2;
int a[N], b[N], c[N];
int len1, len2, len3;

bool cmp(string& s1, string& s2)
{
	//先比较长度
	if(s1.size() != s2.size()) return s1.size() < s2.size();

	//再按照字典序的方式比较
	return s1 < s2;
}

void sub(int a[], int b[], int c[])
{
	for(int i = 0; i < len3; i++)
	{
		c[i] += a[i] - b[i]; // 对应位相减，然后处理借位
		if(c[i] < 0)
		{
			c[i + 1] -= 1;
			c[i] += 10;
		}
	}

	while(len3 > 1 && c[len3 - 1] == 0) len3--;
}

int main()
{
	cin >> s1 >> s2;
	//比较大小
	if(cmp(s1, s2)) 
	{
		cout << "-";
		swap(s1, s2);
	}

	//1.拆分每一位，逆序放到数组中
	len1 = s1.size(); len2 = s2.size(); len3 = max(len1, len2);
	for(int i = 0; i < len1; i++) a[len1 - i - 1] = s1[i] - '0';
	for(int i = 0; i < len2; i++) b[len2 - i - 1] = s2[i] - '0';

	//2.模拟减法的过程
	sub(a, b, c);

	//3.输出结果
	for(int i = len3 - 1; i >= 0; i--) cout << c[i];

	return 0;
}